home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 January: Mac OS SDK / Dev.CD Jan 96 SDK / Dev.CD Jan 96 SDK1.toast / Development Kits (Disc 1) / AOCE / Development Tools / Interfaces / CIncludes / OCEStandardMail.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-11-10  |  17.4 KB  |  649 lines  |  [TEXT/MPS ]

  1. /************************************************************
  2.  
  3. Created: Friday, June 4, 1993 at 10:05AM
  4.  OCEStandardMail.h
  5.  C Interface to the Macintosh Libraries
  6.  
  7.   Copyright Apple Computer, Inc. 1990-1993
  8.   All rights reserved
  9.  
  10. ************************************************************/
  11.  
  12.  
  13. #ifndef __OCESTANDARDMAIL__
  14. #define __OCESTANDARDMAIL__
  15.  
  16. #ifndef __APPLEEVENTS__
  17. #include <AppleEvents.h>
  18. #endif
  19.  
  20. #ifndef __FILES__
  21. #include <Files.h>
  22. #endif
  23.  
  24. #ifndef __OCEAUTHDIR__
  25. #include <OCEAuthDir.h>
  26. #endif
  27.  
  28. #ifndef __OCEMAIL__
  29. #include <OCEMail.h>
  30. #endif
  31.  
  32. #ifndef __WINDOWS__
  33. #include <Windows.h>
  34. #endif
  35.  
  36. #ifndef __DIALOGS__
  37. #include <Dialogs.h>
  38. #endif
  39.  
  40.  
  41.  
  42.  
  43.  
  44. #define kSMPVersion                        1
  45.  
  46. #define gestaltSMPMailerVersion            'malr'
  47. #define gestaltSMPSPSendLetterVersion    'spsl'
  48.  
  49. #define kSMPNativeFormatName            'natv'
  50.  
  51. struct LetterSpec {
  52.     unsigned long        spec[3];
  53. };
  54.  
  55. typedef struct LetterSpec LetterSpec;
  56.  
  57. #define typeLetterSpec        'lttr'
  58.  
  59.  
  60.  
  61. /*    Wildcard used for filtering letter types. */
  62.  
  63. enum {
  64.     FilterAnyLetter                =    'ltr*',
  65.     FilterAppleLetterContent    =    'ltc*',
  66.     FilterImageContent            =    'lti*'
  67. };
  68.  
  69.  
  70. struct LetterDescriptor {
  71.     Boolean            onDisk;
  72.     union {
  73.         FSSpec        fileSpec;
  74.         LetterSpec    mailboxSpec;
  75.     }u;
  76. };
  77.  
  78. typedef struct LetterDescriptor LetterDescriptor;
  79.  
  80.  
  81. /*
  82. SMPPSendAs values.  You may add the following values together to determine how the
  83. file is sent, but you may not set both kSMPSendAsEnclosureMask and kSMPSendFileOnlyMask.  This
  84. will allow you to send the letter as an image so that it will work with fax gateways
  85. and send as an enclosure as well.
  86. */
  87.  
  88. enum {
  89.     kSMPSendAsEnclosureBit,                /* Appears as letter with enclosures */
  90.     kSMPSendFileOnlyBit,                /* Appears as a file in mailbox. */
  91.     kSMPSendAsImageBit                    /* Content imaged in letter */
  92. };
  93.  
  94. /* Values of SMPPSendAs */
  95. enum {
  96.     kSMPSendAsEnclosureMask    = 1<<kSMPSendAsEnclosureBit,
  97.     kSMPSendFileOnlyMask    = 1<<kSMPSendFileOnlyBit,
  98.     kSMPSendAsImageMask        = 1<<kSMPSendAsImageBit
  99. };
  100.  
  101. typedef Byte SMPPSendAs;
  102.  
  103.  
  104. /* Send Package Structures */
  105.  
  106. typedef pascal void (*SMPDrawImageProcPtr)(long refcon, Boolean inColor);
  107.  
  108. struct SMPRecipientDescriptor {
  109.     struct SMPRecipientDescriptor    *next;        /*  Q-Link. */
  110.     OSErr                        result;        /*  result code when using the object. */
  111.     OCEPackedRecipient            *recipient;    /*  Pointer to a Packed Address. */
  112.     unsigned long                size;        /*  length of recipient in bytes. */
  113.     MailRecipient                theAddress;    /*  structure points into recipient and theRID. */
  114.     RecordID                    theRID;        /*  structure points into recipient. */
  115. };
  116.  
  117. typedef struct SMPRecipientDescriptor SMPRecipientDescriptor;
  118. typedef SMPRecipientDescriptor *SMPRecipientDescriptorPtr;
  119.  
  120. struct SMPEnclosureDescriptor {
  121.     struct SMPEnclosureDescriptor    *next;
  122.     OSErr                        result;
  123.     FSSpec                        fileSpec;
  124.     OSType                        fileCreator;    /*  Creator of this enclosure. */
  125.     OSType                        fileType;        /*  File Type of this enclosure. */
  126. };
  127.  
  128. typedef struct SMPEnclosureDescriptor SMPEnclosureDescriptor;
  129. typedef SMPEnclosureDescriptor *SMPEnclosureDescriptorPtr;
  130.  
  131. struct SMPLetterPB {
  132.     OSErr                        result;            /* result of operation */
  133.     RStringPtr                    subject;        /* RString */
  134.     AuthIdentity                senderIdentity;    /* Letter is sent from this Identity */
  135.     SMPRecipientDescriptorPtr    toList;            /* Pointer to linked list */
  136.     SMPRecipientDescriptorPtr    ccList;            /* Pointer to linked list */
  137.     SMPRecipientDescriptorPtr    bccList;        /* Pointer to linked list */
  138.     ScriptCode                    script;            /* Identifier for language */
  139.     Size                        textSize;        /* length of body data */
  140.     Ptr                            textBuffer;        /* body of the letter */
  141.     SMPPSendAs                    sendAs;            /* Send as Letter,Enclosure,Image */
  142.     Byte                        padByte;
  143.     SMPEnclosureDescriptorPtr    enclosures;        /* files to be enclosed */
  144.     SMPDrawImageProcPtr            drawImageProc;    /* For imaging */
  145.     long                        imageRefCon;    /* For imaging */
  146.     Boolean                        supportsColor;    /* For imaging - set to true if you application supports color imaging */
  147. };
  148.  
  149. typedef struct SMPLetterPB SMPLetterPB;
  150. typedef SMPLetterPB *SMPLetterPBPtr;
  151.  
  152.  
  153. enum {
  154.     kSMPAppMustHandleEventBit,
  155.     kSMPAppShouldIgnoreEventBit,
  156.     kSMPContractedBit,
  157.     kSMPExpandedBit,
  158.     kSMPMailerBecomesTargetBit,
  159.     kSMPAppBecomesTargetBit,
  160.     kSMPCursorOverMailerBit,
  161.     kSMPCreateCopyWindowBit,
  162.     kSMPDisposeCopyWindowBit
  163. };
  164.  
  165. /* Values of SMPMailerResult */
  166. enum {
  167.     kSMPAppMustHandleEventMask        = 1<<kSMPAppMustHandleEventBit,
  168.     kSMPAppShouldIgnoreEventMask    = 1<<kSMPAppShouldIgnoreEventBit,
  169.     kSMPContractedMask                = 1<<kSMPContractedBit,
  170.     kSMPExpandedMask                = 1<<kSMPExpandedBit,
  171.     kSMPMailerBecomesTargetMask        = 1<<kSMPMailerBecomesTargetBit,
  172.     kSMPAppBecomesTargetMask        = 1<<kSMPAppBecomesTargetBit,
  173.     kSMPCursorOverMailerMask        = 1<<kSMPCursorOverMailerBit,
  174.     kSMPCreateCopyWindowMask        = 1<<kSMPCreateCopyWindowBit,
  175.     kSMPDisposeCopyWindowMask        = 1<<kSMPDisposeCopyWindowBit
  176. };
  177.  
  178. typedef unsigned long SMPMailerResult;
  179.  
  180. /* Values of SMPMailerComponent*/
  181. enum {
  182.     kSMPOther            =    -1,
  183.     kSMPFrom            =    32,
  184.     kSMPTo                =    20,
  185.     kSMPRegarding        =    22,
  186.     kSMPSendDateTime    =    29,
  187.     kSMPAttachments        =    26,
  188.     kSMPAddressOMatic    =    16
  189. };
  190.  
  191. typedef unsigned long SMPMailerComponent;
  192.  
  193.  
  194.  
  195. enum {
  196.     kSMPToAddress        =    kMailToBit,
  197.     kSMPCCAddress        =    kMailCcBit,
  198.     kSMPBCCAddress        =    kMailBccBit
  199. };
  200.  
  201. typedef MailAttributeID SMPAddressType;
  202.  
  203.  
  204.  
  205. enum {
  206.     kSMPUndoCommand, kSMPCutCommand, kSMPCopyCommand, kSMPPasteCommand, kSMPClearCommand,
  207.     kSMPSelectAllCommand
  208. };
  209.  
  210. typedef unsigned short SMPEditCommand;
  211.  
  212.  
  213. enum {kSMPUndoDisabled, kSMPAppMayUndo, kSMPMailerUndo};
  214.  
  215. typedef unsigned short SMPUndoState;
  216.  
  217.  
  218. /*
  219. SMPSendFormatMask:
  220.  
  221. Bitfield indicating which combinations of formats are included in,
  222. should be included or, or can be included in a letter.
  223. */
  224.         
  225. enum {
  226.     kSMPNativeBit,
  227.     kSMPImageBit,
  228.     kSMPStandardInterchangeBit
  229. };
  230.  
  231. /* Values of SMPSendFormatMask */
  232. enum {
  233.     kSMPNativeMask                    = 1<<kSMPNativeBit,
  234.     kSMPImageMask                    = 1<<kSMPImageBit,
  235.     kSMPStandardInterchangeMask        = 1<<kSMPStandardInterchangeBit
  236. };
  237.  
  238. typedef unsigned long SMPSendFormatMask;
  239.  
  240.  
  241.  
  242. /*
  243.     Pseudo-events passed to the clients filter proc for initialization and cleanup.
  244. */ 
  245. enum {
  246.     kSMPSendOptionsStart             = -1,
  247.     kSMPSendOptionsEnd                = -2
  248. };
  249.  
  250.  
  251. /*
  252. SMPSendFormatMask:
  253.  
  254. Structure describing the format of a letter.  If kSMPNativeMask bit is set, the whichNativeFormat field indicates which of the client-defined formats to use.
  255. */
  256.         
  257.  
  258. struct SMPSendFormat {
  259.         SMPSendFormatMask    whichFormats;
  260.         short                whichNativeFormat;    /* 0 based */
  261. };
  262.  
  263.  
  264. typedef struct SMPSendFormat SMPSendFormat;
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271. struct SMPLetterInfo {
  272.         OSType                letterCreator;
  273.         OSType                letterType;
  274.         RString32            subject;
  275.         RString32            sender;
  276. };
  277.  
  278.  
  279. typedef struct SMPLetterInfo SMPLetterInfo;
  280.  
  281.  
  282.  
  283. enum {kSMPSave, kSMPSaveAs, kSMPSaveACopy};
  284.  
  285. typedef unsigned short SMPSaveType;
  286.  
  287.  
  288.  
  289. typedef pascal WindowPtr (*FrontWindowProcPtr) (long clientData);
  290.  
  291. typedef pascal void (*PrepareMailerForDrawingProcPtr) (WindowPtr window, 
  292.     long clientData);
  293.  
  294. typedef pascal Boolean (*SendOptionsFilterProc) (DialogPtr theDialog,
  295.     EventRecord* theEvent,
  296.     short itemHit,
  297.     long clientData);
  298.  
  299.  
  300. #define kSMPGetDimensions            4700
  301. #define kSMPNewMailer                4701
  302. #define kSMPDisposeMailer            4702
  303. #define kSMPMailerEvent                4703
  304. #define kSMPMailerEditCommand        4704
  305. #define kSMPMailerForward            4705
  306. #define kSMPMailerReply                4706
  307. #define kSMPGetMailerState            4707
  308. #define kSMPPrepareCoverPages        4708
  309. #define kSMPDrawNthCoverPage        4709
  310. #define kSMPBeginSave                4710
  311. #define kSMPBeginSend                4711
  312. #define kSMPOpenLetter                4712
  313. #define kSMPDrawMailer                4713
  314. #define kSMPMoveMailer                4714
  315. #define kSMPSetSubject                4715
  316. #define kSMPSetFromIdentity            4716
  317. #define kSMPAddAddress                4717
  318. #define kSMPAddAttachment            4718
  319. #define kSMPContentChanged            4719
  320. #define kSMPEndSave                    4720
  321. #define kSMPEndSend                    4721
  322. #define kSMPExpandOrContract        4722
  323. #define kSMPBecomeTarget            4723
  324. #define kSMPGetTabInfo                4724
  325. #define kSMPClearUndo                4725
  326. #define kSMPAttachDialog            4726
  327. #define kSMPGetComponentSize        4727
  328. #define kSMPGetComponentInfo        4728
  329. #define kSMPGetListItemInfo            4729
  330. #define kSMPAddContent                4730
  331. #define kSMPReadContent                4731
  332. #define kSMPGetFontNameFromLetter    4732
  333. #define kSMPAddMainEnclosure        4733
  334. #define kSMPGetMainEnclosureFSSpec    4734
  335. #define kSMPAddBlock                4735
  336. #define kSMPReadBlock                4736
  337. #define kSMPEnumerateBlocks            4737
  338. #define kSMPImage                    4738
  339. #define kSMPInitMailer                4741
  340. #define kSMPGetNextLetter            4742
  341. #define kSMPPrepareToClose            4743
  342. #define kSMPCloseOptionsDialog        4744
  343. #define kSMPPrepareToChange            4745
  344. #define kSMPGetLetterInfo            4746
  345. #define kSMPTagDialog                4747
  346. #define kSMPSendOptionsDialog        5000
  347.  
  348.  
  349. struct SMPMailerState {
  350.     short                mailerCount;
  351.     short                currentMailer;
  352.     Point                upperLeft;
  353.     Boolean                hasBeenReceived;
  354.     Boolean                isTarget;
  355.     Boolean                isExpanded;
  356.     Boolean                canMoveToTrash;
  357.     Boolean                canTag;
  358.     Byte                padByte2;
  359.     unsigned long        changeCount;
  360.     SMPMailerComponent    targetComponent;
  361.     Boolean                canCut;
  362.     Boolean                canCopy;
  363.     Boolean                canPaste;
  364.     Boolean                canClear;
  365.     Boolean                canSelectAll;
  366.     Byte                padByte3;
  367.     SMPUndoState        undoState;
  368.     Str63                undoWhat;
  369. };
  370.  
  371. typedef struct SMPMailerState SMPMailerState;
  372.  
  373.  
  374. struct SMPSendOptions {
  375.     Boolean                signWhenSent;
  376.     IPMPriority            priority;
  377. };
  378.  
  379. typedef struct SMPSendOptions SMPSendOptions;
  380. typedef SMPSendOptions *SMPSendOptionsPtr, **SMPSendOptionsHandle;
  381.  
  382.  
  383.  
  384. struct SMPCloseOptions {
  385.     Boolean                moveToTrash;
  386.     Boolean                addTag;
  387.     RString32            tag;
  388. };
  389.  
  390. typedef struct SMPCloseOptions SMPCloseOptions;
  391. typedef SMPCloseOptions *SMPCloseOptionsPtr;
  392.  
  393.  
  394.  
  395. /*----------------------------------------------------------------------------------------
  396.     Send Package Routines
  397. ----------------------------------------------------------------------------------------*/
  398. #ifndef __SMPSendLetter
  399. #define __SMPSendLetter(count,selector) = { 0x203C, count, selector, 0xAA5D}
  400. #endif
  401.  
  402. #ifndef __SMPImage
  403. #define __SMPImage(count,selector) = { 0x203C, count, selector, 0xAA5D}
  404. #endif
  405.  
  406. #ifndef __SMPResolve
  407. #define __SMPResolve(count,selector) = { 0x203C, count, selector, 0xAA5D}
  408. #endif
  409.  
  410. #ifndef __SMPMailer
  411. #define __SMPMailer(count,selector) = { 0x203C, count, selector, 0xAA5D}
  412. #endif
  413.  
  414.  
  415. #define kSMPSendLetter                500
  416. #define kSMPResolveToRecipient        1100
  417.  
  418. #define kSMPNewPage                    2100
  419. #define kSMPImageErr                2101
  420.  
  421.  
  422. #ifdef __cplusplus
  423. extern "C" {
  424. #endif
  425.  
  426.  
  427. pascal OSErr SMPSendLetter(SMPLetterPBPtr theLetter)
  428.     __SMPSendLetter(2, kSMPSendLetter);
  429.  
  430. pascal OSErr SMPNewPage(OpenCPicParams *newHeader)
  431.     __SMPImage(2, kSMPNewPage);
  432.  
  433. pascal OSErr SMPImageErr(void)
  434.     __SMPImage(0, kSMPImageErr);
  435.  
  436. pascal OSErr SMPResolveToRecipient(PackedDSSpecPtr dsSpec,
  437.     SMPRecipientDescriptorPtr *recipientList, AuthIdentity identity)
  438.     __SMPResolve(6, kSMPResolveToRecipient);
  439.  
  440.  
  441.  
  442. pascal OSErr SMPInitMailer(long mailerVersion)
  443.     __SMPMailer(2, kSMPInitMailer);
  444.  
  445. pascal OSErr SMPGetDimensions(short *width, short *contractedHeight,
  446.     short *expandedHeight)
  447.     __SMPMailer(6, kSMPGetDimensions);
  448.  
  449. pascal OSErr SMPGetTabInfo(SMPMailerComponent *firstTab,
  450.     SMPMailerComponent *lastTab)
  451.     __SMPMailer(4, kSMPGetTabInfo);
  452.  
  453. pascal OSErr SMPNewMailer(WindowPtr window, Point upperLeft, Boolean canContract,
  454.     Boolean initiallyExpanded, AuthIdentity identity,
  455.     const PrepareMailerForDrawingProcPtr prepareMailerForDrawingCB,
  456.     long clientData)
  457.     __SMPMailer(12, kSMPNewMailer);
  458.  
  459. pascal OSErr SMPPrepareToClose(WindowPtr window)
  460.     __SMPMailer(2, kSMPPrepareToClose);
  461.  
  462. pascal OSErr SMPCloseOptionsDialog(WindowPtr window, SMPCloseOptionsPtr closeOptions)
  463.     __SMPMailer(4, kSMPCloseOptionsDialog);
  464.  
  465. pascal OSErr SMPTagDialog(WindowPtr window, RString32* theTag)
  466.     __SMPMailer(4, kSMPTagDialog);
  467.  
  468. pascal OSErr SMPDisposeMailer(WindowPtr window, SMPCloseOptionsPtr closeOptions)
  469.     __SMPMailer(4, kSMPDisposeMailer);
  470.  
  471. pascal OSErr SMPMailerEvent(const EventRecord *event, SMPMailerResult *whatHappened, 
  472.     const FrontWindowProcPtr frontWindowCB, long clientData)
  473.     __SMPMailer(8, kSMPMailerEvent);
  474.  
  475. pascal OSErr SMPClearUndo(WindowPtr window)
  476.     __SMPMailer(2, kSMPClearUndo);
  477.  
  478.  
  479. pascal OSErr SMPMailerEditCommand(WindowPtr window, SMPEditCommand command,
  480.     SMPMailerResult *whatHappened)
  481.     __SMPMailer(5, kSMPMailerEditCommand);
  482.  
  483. pascal OSErr SMPMailerForward(WindowPtr window, AuthIdentity from)
  484.     __SMPMailer(4, kSMPMailerForward);
  485.  
  486. pascal OSErr SMPMailerReply(WindowPtr originalLetter, WindowPtr newLetter,
  487.     Boolean replyToAll, Point upperLeft, Boolean canContract,
  488.     Boolean initiallyExpanded, AuthIdentity identity,
  489.     const PrepareMailerForDrawingProcPtr prepareMailerForDrawingCB,
  490.     long clientData)
  491.     __SMPMailer(15, kSMPMailerReply);
  492.  
  493. pascal OSErr SMPGetMailerState(WindowPtr window, SMPMailerState *itsState)
  494.     __SMPMailer(4, kSMPGetMailerState);
  495.  
  496. pascal OSErr SMPSendOptionsDialog(
  497.     WindowPtr window,    
  498.     Str255 documentName,
  499.     StringPtr nativeFormatNames[],
  500.     unsigned short nameCount,
  501.     SMPSendFormatMask canSend,
  502.     SMPSendFormat *currentFormat,
  503.     SendOptionsFilterProc filterProc,
  504.     long clientData,
  505.     SMPSendFormat *shouldSend,
  506.     SMPSendOptionsPtr sendOptions)
  507.     __SMPMailer(19, kSMPSendOptionsDialog);
  508.  
  509. pascal OSErr SMPPrepareCoverPages(WindowPtr window, short *pageCount)
  510.     __SMPMailer(4, kSMPPrepareCoverPages);
  511.  
  512. pascal OSErr SMPDrawNthCoverPage(WindowPtr window, short pageNumber,
  513.     Boolean doneDrawingCoverPages)
  514.     __SMPMailer(4, kSMPDrawNthCoverPage);
  515.  
  516. pascal OSErr SMPPrepareToChange(WindowPtr window)
  517.     __SMPMailer(2, kSMPPrepareToChange);
  518.  
  519. pascal OSErr SMPContentChanged(WindowPtr window)
  520.     __SMPMailer(2, kSMPContentChanged);
  521.  
  522. pascal OSErr SMPBeginSave(WindowPtr window, const FSSpec *diskLetter,
  523.     OSType creator, OSType fileType, SMPSaveType saveType, Boolean *mustAddContent)
  524.     __SMPMailer(11, kSMPBeginSave);
  525.  
  526. pascal OSErr SMPEndSave(WindowPtr window, Boolean okToSave)
  527.     __SMPMailer(3, kSMPEndSave);
  528.  
  529. pascal OSErr SMPBeginSend(WindowPtr window, OSType creator, 
  530.     OSType fileType, SMPSendOptionsPtr sendOptions, 
  531.     Boolean *mustAddContent)
  532.     __SMPMailer(10, kSMPBeginSend);
  533.  
  534. pascal OSErr SMPEndSend(WindowPtr window, Boolean okToSend)
  535.     __SMPMailer(3, kSMPEndSend);
  536.  
  537. pascal OSErr SMPOpenLetter(const LetterDescriptor *letter, 
  538.     WindowPtr window, Point upperLeft, Boolean canContract, 
  539.     Boolean initiallyExpanded,
  540.     const PrepareMailerForDrawingProcPtr prepareMailerForDrawingCB,
  541.     long clientData)
  542.     __SMPMailer(12, kSMPOpenLetter);
  543.  
  544. pascal OSErr SMPAddMainEnclosure(WindowPtr window, const FSSpec *enclosure)
  545.     __SMPMailer(4, kSMPAddMainEnclosure);
  546.  
  547. pascal OSErr SMPGetMainEnclosureFSSpec(WindowPtr window, FSSpec *enclosureDir)
  548.     __SMPMailer(4, kSMPGetMainEnclosureFSSpec);
  549.  
  550. pascal OSErr SMPAddContent(WindowPtr window, MailSegmentType segmentType,
  551.     Boolean appendFlag, void *buffer, unsigned long bufferSize,
  552.     StScrpRec *textScrap, Boolean startNewScript, ScriptCode script) 
  553.     __SMPMailer(12, kSMPAddContent);
  554.                     
  555. pascal OSErr SMPReadContent(WindowPtr window, MailSegmentMask segmentTypeMask,
  556.     void *buffer, unsigned long bufferSize, unsigned long *dataSize,
  557.     StScrpRec *textScrap, ScriptCode *script, MailSegmentType *segmentType,
  558.     Boolean *endOfScript, Boolean *endOfSegment, Boolean *endOfContent,
  559.     long *segmentLength, long *segmentID) 
  560.     __SMPMailer(25, kSMPReadContent);
  561.                     
  562. pascal OSErr SMPGetFontNameFromLetter(WindowPtr window, short fontNum,
  563.     Str255 fontName, Boolean doneWithFontTable) 
  564.     __SMPMailer(6, kSMPGetFontNameFromLetter);
  565.  
  566. pascal OSErr SMPAddBlock(WindowPtr window, const OCECreatorType *blockType,
  567.     Boolean append, void *buffer, unsigned long bufferSize,
  568.     MailBlockMode mode, unsigned long offset)
  569.     __SMPMailer(12, kSMPAddBlock);
  570.  
  571. pascal OSErr SMPReadBlock(WindowPtr window, const OCECreatorType *blockType,
  572.     unsigned short blockIndex, void *buffer, unsigned long bufferSize,
  573.     unsigned long dataOffset, unsigned long *dataSize, Boolean *endOfBlock,
  574.     unsigned long *remaining)
  575.     __SMPMailer(17, kSMPReadBlock);
  576.  
  577. pascal OSErr SMPEnumerateBlocks(WindowPtr window, unsigned short startIndex,
  578.     void *buffer, unsigned long bufferSize, unsigned long *dataSize,
  579.     unsigned short *nextIndex, Boolean *more)
  580.     __SMPMailer(13, kSMPEnumerateBlocks);
  581.  
  582. pascal OSErr SMPDrawMailer(WindowPtr window)
  583.     __SMPMailer(2, kSMPDrawMailer);
  584.  
  585.  
  586. pascal OSErr SMPSetSubject(WindowPtr window, const RString *text)
  587.     __SMPMailer(4, kSMPSetSubject);
  588.  
  589. pascal OSErr SMPSetFromIdentity(WindowPtr window, AuthIdentity from)
  590.     __SMPMailer(4, kSMPSetFromIdentity);
  591.  
  592. pascal OSErr SMPAddAddress(WindowPtr window, SMPAddressType addrType,
  593.     OCEPackedRecipient *address)
  594.     __SMPMailer(5, kSMPAddAddress);
  595.  
  596. pascal OSErr SMPAddAttachment(WindowPtr window, const FSSpec *attachment)
  597.     __SMPMailer(4, kSMPAddAttachment);
  598.  
  599. pascal OSErr SMPAttachDialog(WindowPtr window)
  600.     __SMPMailer(2, kSMPAttachDialog);
  601.  
  602.  
  603. pascal OSErr SMPExpandOrContract(WindowPtr window, Boolean expand)
  604.     __SMPMailer(3, kSMPExpandOrContract);
  605.  
  606.  
  607. pascal OSErr SMPMoveMailer(WindowPtr window, short dh, short dv)
  608.     __SMPMailer(4, kSMPMoveMailer);
  609.  
  610.  
  611. pascal OSErr SMPBecomeTarget(WindowPtr window, Boolean becomeTarget,
  612.     SMPMailerComponent whichField)
  613.     __SMPMailer(5, kSMPBecomeTarget);
  614.  
  615.  
  616. pascal OSErr SMPGetComponentSize(WindowPtr window, unsigned short whichMailer,
  617.     SMPMailerComponent whichField, unsigned short *size)
  618.     __SMPMailer(7, kSMPGetComponentSize);
  619.  
  620.  
  621. pascal OSErr SMPGetComponentInfo(WindowPtr window, unsigned short whichMailer,
  622.     SMPMailerComponent whichField, void *buffer)
  623.     __SMPMailer(7, kSMPGetComponentInfo);
  624.  
  625.  
  626. pascal OSErr SMPGetListItemInfo(WindowPtr window, unsigned short whichMailer,
  627.     SMPMailerComponent whichField, void *buffer, unsigned long bufferLength,
  628.     unsigned short startItem, unsigned short *itemCount,
  629.     unsigned short *nextItem, Boolean *more) 
  630.     __SMPMailer(16, kSMPGetListItemInfo);
  631.  
  632. pascal OSErr SMPImage(WindowPtr window, SMPDrawImageProcPtr drawImageProc, long imageRefCon, Boolean supportsColor)
  633.     __SMPMailer(7, kSMPImage);
  634.  
  635. pascal OSErr SMPGetNextLetter(OSType *typesList, short numTypes, 
  636.     LetterDescriptor *adjacentLetter)
  637.     __SMPMailer(5, kSMPGetNextLetter);
  638.  
  639. pascal OSErr SMPGetLetterInfo(LetterSpec *mailboxSpec, 
  640.     SMPLetterInfo* info)
  641.     __SMPMailer(4, kSMPGetLetterInfo);
  642.  
  643. #ifdef __cplusplus
  644. }
  645. #endif
  646.  
  647.  
  648. #endif
  649.